<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>WEEK 01</title>
</head>

<body>
    <script src="./week01.js"></script>
    <div>42. 接雨水</div>
    <div id="problem-42"></div>
    <div>====================================================</div>
    <div>26. 删除有序数组中的重复项</div>
    <div id="problem-26"></div>
    <div>====================================================</div>
    <div>189. 旋转数组</div>
    <div id="problem-189"></div>

    <h1>第一周知识点总结</h1>
    <h2>数组</h2>
    <h3>数组用一块连续的内存空间，来存储相同类型的一组数据。<br>
        支持随机访问，时间复杂度 O(1)<br>
        插入、删除操作比较低效，为了满足连续空间需要进行数据的搬移，平均情况时间复杂度为O(n)
    </h3>
    <h2>链表</h2>
    <h3>链表内存空间可以不连续<br>
        链表类型有：单链表、双向链表、循环链表、双向循环链表等<br>
        更适合插入、删除操作频繁的场景，时间复杂度 O(1)<br>
        但是访问时需要遍历链表 ，平均情况时间复杂度为O(n)<br>
        某些情况下双向链表的访问比单链表更高效，如指定访问某个节点前面的节点<br>
        为了提高访问效率，用空间换时间的设计思路出现跳表
    </h3>
    <h2>跳表</h2>
    <h3>通过空间换时间，构建多级索引来提高查询的效率，实现了基于链表的“二分查找”
        是一种动态数据结构，支持快速的插入、删除、查找操作，时间复杂度为O(nlogn)
    </h3>

    <h2>栈</h2>
    <h3>栈是一种受限的数据结构，只支持入栈和出栈操作，其入栈、出栈时间复杂度为O(1)。特点是先入后出。</h3>

    <h2>队列</h2>
    <h3>特点是先入先出，常见 有 优先队列，双端队列</h3>
</body>

</html>